﻿//GoodDetail.aspx.cs
////////////////////////////////////////
////////////////////////////////////////
//点击某个商品链接或图片时显示，显示这个商品的所有详细信息
////////////////////////////////////////
////////////////////////////////////////
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.Sql;
using System.Data.SqlClient;

public partial class Gooddetail : System.Web.UI.Page
{
    CommonClass ccObj = new CommonClass();
    ArrayList orderArrayList = new ArrayList();  //存放订单列表，存放的数据类型为OrderList类。
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (Request.Params["instruID"] != null)
            {
                DataTable dtGood = new DataTable();
                DataTable dtComment = new DataTable();
                //通过乐器ID得到乐器的评论（包括评论ID），将结果放到表dtComment中，然后放在相应的控件ListView中。
                //修改相应乐器的点击次数。
                Instrument instru = new Instrument();
                int instruID = Convert.ToInt32(Request.Params["instruID"]);
                dtGood = instru.GetSingleInstrument(instruID);
                lbname.Text = dtGood.Rows[0]["name"].ToString();
                lbPrice.Text = dtGood.Rows[0]["sellPrice"].ToString();
                lbDate.Text = dtGood.Rows[0]["createTime"].ToString();
                lbDescription.Text = dtGood.Rows[0]["description"].ToString();
                Img.ImageUrl = dtGood.Rows[0]["pictureUrl"].ToString();
                Comment comment = new Comment();
                dtComment = comment.GetCommentByInstrument(instruID);
                lvComment.DataSource = dtComment;
                lvComment.DataBind();
            }
        }
    }
    protected void btnAddgood_Click(object sender, EventArgs e)
    {
        if (Session["User"] != null) //用户若登录，则可购买商品
        {
            Button btnBuy = (Button)sender;
            int instruID = Convert.ToInt32(btnBuy.CommandArgument.ToString());    //从按钮CommandArgument属性值获得所购买商品的商品号。
            //判断Session对象中是否存在用于保存已购买商品的ArrayList对象orderList，若存在，则取出该对象，否则新建一个ArrayList对象orderList。
            if (Session["OrderList"] != null)
            {
                orderArrayList = (ArrayList)Session["OrderList"];
            }
            else
            {
                orderArrayList = new ArrayList();
            }

            //通过instruID得到商品的详细信息，存放到DataTable dtGoodDetail中
            DataTable dtGoodDetail = new DataTable();
            Instrument instru = new Instrument();
            dtGoodDetail = instru.GetSingleInstrument(instruID);
            
            if (dtGoodDetail.Rows.Count > 0)
            {
                //判断新购买的商品是否购买过，如果已购买过，则将表示该商品的Order对象中的Number属性加1.
                for (int i = 0; i < orderArrayList.Count; i++)
                {
                    OrderList orderlist = (OrderList)orderArrayList[i];
                    if(orderlist.instruID == instruID)
                    {
                        orderlist.quantity++;
                        Session["OrderList"] = orderArrayList;
                        Response.Write("Cart.aspx");
                        return;
                    }
                }
                //若未购买过该商品，则将该商品的Order对象添加到ArrayList对象orderList中保存，并存入Session中。
                OrderList neworderlist = new OrderList(dtGoodDetail);
                orderArrayList.Add(neworderlist);
                Session["OrderList"] = orderArrayList;
                return;
            }
        }
        else
        {
            Response.Write(ccObj.MessageBox("请先登录！", "Default.aspx"));  //若未登录，则先登录
        }
    }
    protected void btnComment_Click(object sender, EventArgs e)
    {
        /////////////////////////
        /////////////////////////
        //将评论的一系列属性（评论，评论人，评论时间，评论商品。。。）加入到表中。
        /////////////////////////
        /////////////////////////
        Comment comment = new Comment();
        Client user = (Client)Session["User"];
        int instruID = Convert.ToInt32(Request.Params["instruID"]);
        comment.AddComment(TextBox1.Text, instruID, user.clientID);
        Response.Redirect("Gooddetail.aspx");
    }
}
